package dancespeedyenumsmyredis

type DrawPrizeEnums struct {
}

var DrawPrizeEnumsObject DrawPrizeEnums

const (
	DrawPrizeBatchNumber   = "DrawPrizeBatchNumber"   //用户抽奖批次，默认保底+1
	DrawPrizeCurrentNumber = "DrawPrizeCurrentNumber" //用户当前累计抽奖次数，满足条件后重置，批次+1

	// 碎片可赠送次数获取类型
	PieceGiveNumGetTypeBasicCfg     = 0 // 使用保底配置
	PieceGiveNumGetTypeDrawPrize    = 1 // 抽满次数获取
	PieceGiveNumGetTypeGiveOther    = 2 // 赠送碎片减少
	PieceGiveNumGetTypeAdminOperate = 3 // 后台补发

	// 碎片可赠送次数加减 枚举
	PieceGiveNumChangeLogTypeAdd     = 1 //增加
	PieceGiveNumChangeLogTypeReduced = 2 //减少

	// 服饰获取加减 枚举
	ClothesChangeLogTypeAdd     = 1 //增加
	ClothesChangeLogTypeReduced = 2 //减少

	// 挖矿奖励发放枚举
	MiningSendRewardsScript          = 1 //脚本
	MiningSendRewardsExitProactively = 2 // 离开城池

	//抽奖赠送奖励
	DrawActivityDayTaskSwitchOff = 0 //关闭
	DrawActivityDayTaskSwitchUp  = 1 //开启

	// 服饰获取来源
	DanceComposeClothesChangeLogSourceDirectDrawPrize                        = 1  // 抽奖直接获得
	DanceComposeClothesChangeLogSourcePieceExchange                          = 2  // 碎片兑换获得
	DanceComposeClothesChangeLogSourceMarrySuccess                           = 3  // 结婚
	DanceComposeClothesChangeLogSourceAdminAdd                               = 4  // 后台补发增加
	DanceComposeClothesChangeLogSourceHourRank                               = 5  // 小时榜发放
	DanceComposeClothesChangeLogSourceDayRank                                = 6  // 日榜发放
	DanceComposeClothesChangeLogSourceWeekRank                               = 7  // 周榜发放
	DanceComposeClothesChangeLogSourceTripActivity                           = 8  // 旅途活动
	DanceComposeClothesChangeLogSourceScoreActivity                          = 9  // 星光值活动
	DanceComposeClothesChangeLogSourcePropResolve                            = 10 // 道具分解
	DanceComposeClothesChangeLogSourceBuyShopMallGoodAdd                     = 11 // 购买商品增加
	DanceComposeClothesChangeLogSourceOpenTreasureBoxAdd                     = 12 // 开宝箱增加
	DanceComposeClothesChangeLogSourceEndMiningAdd                           = 13 // 结束挖矿发放奖励
	DanceComposeClothesChangeLogSourceBetaPetSettlementSend                  = 14 //内测宠物结算发放
	DanceComposeClothesChangeLogSourcePropValidityPeriodGive                 = 15 //道具时长赠送
	DanceComposeClothesChangeLogSourcePetPowerRankingAdd                     = 16 // 用户战力结算奖励
	DanceComposeClothesChangeLogSourceSwipeGiftsGivePropsActivity            = 17 // 刷礼物送道具活动
	DanceComposeClothesChangeLogSourceMysticalShopRoomBuy                    = 18 // 神秘商店直播间购买
	DanceComposeClothesChangeLogSourceAnniversaryActivityFortuneCardPrize    = 19 // 周年庆活动集福卡奖励
	DanceComposeClothesChangeLogSourceAnniversaryActivityFortuneCardCompound = 20 // 周年庆活动合成福卡
	DanceComposeClothesChangeLogSourceOnHoldEndReward                        = 21 // 队伍挂机结束发放奖励
	DanceComposeClothesChangeLogSourceAdminCut                               = 22 // 后台补发减少
	DanceComposeClothesChangeLogSourcePetBossPieceExchange                   = 23 // 宠物boss商店碎片兑换获得
	DanceComposeClothesChangeLogSourcePetBossAtkRankReward                   = 24 // 打boss伤害排名发放奖励
	DanceComposeClothesChangeLogSourcePetBossAtkDmgReward                    = 25 // 打boss伤害档位发放奖励
	DanceComposeClothesChangeLogSourceDrawPrizeDayTaskReward                 = 26 // 抽奖每日任务送奖励
	DanceComposeClothesChangeLogSourceMiniGameClothesGetOnce                 = 27 // 小游戏领取一次性衣服
	DanceComposeClothesChangeLogPropValidityPeriodBatchGive                  = 28 // 道具时长批量赠送
	DanceComposeClothesChangeLogSourceMiniGamePropResolve                    = 29 // 小游戏道具分解
	DanceComposeClothesChangeLogSourceMiniGameBuyShopMallGoodAdd             = 30 // 小游戏购买商品增加
	DanceComposeClothesChangeLogSourceMiniGameOpenTreasureBoxAdd             = 31 // 小游戏开宝箱增加
	DanceComposeClothesChangeLogSourceDirectNewDrawPrize                     = 32 // 新抽奖活动获得
	//DanceComposeClothesChangeLogSourcePrizeDrawCPGift                        = 33 // 新抽奖活动Cp赠送获得
	DanceComposeClothesChangeLogSourceMiniGamePieceExchange                        = 34 // 小游戏碎片兑换道具获得
	DanceComposeClothesChangeLogSourceConfessionWall                               = 35 // 告白墙周榜发放
	DanceComposeClothesChangeLogSourceAllGiftWeekRank                              = 36 // 全服礼物周榜发放
	DanceComposeClothesChangeLogSourceMinGameTurntableDrawPrize                    = 37 // 小游戏转盘抽奖
	DanceComposeClothesChangeLogSourceCumulativeSales                              = 38 // 累销活动发放
	DanceComposeClothesChangeLogSourceRingMarriageEngagementModelFortuneAccomplish = 39 // 戒指订婚模式福气值完成
	DanceComposeClothesChangeLogSourceHourTopRank                                  = 40 // 小时榜活动发放
	DanceComposeClothesChangeLogSourceRingMarriageProposalModelStart               = 41 // 戒指求婚模式开启
	DanceComposeClothesChangeLogSourceRingMarriageProposalModelFortuneAccomplish   = 42 // 戒指求婚模式福气值完成
	DanceComposeClothesChangeLogSourceRingMarriageEngagementModelStart             = 43 // 戒指订婚模式开启
	DanceComposeClothesChangeLogSourceRingMarriedModelStart                        = 44 // 戒指结婚模式开启
	DanceComposeClothesChangeLogSourceRingMarriedModelFortuneAccomplish            = 45 // 戒指结婚模式福气值完成
	DanceComposeClothesChangeLogSourceRingProposalHalfModelStart                   = 46 // 戒指求婚半价模式开启
	DanceComposeClothesChangeLogSourceRingProposalHalfModelFortuneAccomplish       = 47 // 戒指求婚半价模式福气值完成
	DanceComposeClothesChangeLogSourceDoubleHourTopRank                            = 48 // 双人小时榜活动发放
	DanceComposeClothesChangeLogSourceMinGameDrawPrizeDayTaskReward                = 49 // 抽奖每日任务送奖励(小背包领取)
	DanceComposeClothesChangeLogSourceRoseRank                                     = 50 //魅力值排行榜奖励

	// 抽奖信息队列枚举
	DanceActivitiesDrawPrizeListLogSourceRoomGiftPush         = 1 // 直播间刷礼物推送
	DanceActivitiesDrawPrizeListLogSourceDistributeNumberPush = 2 // 补发抽奖次数推送
	DanceActivitiesDrawPrizeListLogSourceRoomPull             = 3 // 直播间拉取
)

func (e DrawPrizeEnums) PieceGiveNumSourceNameMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.PieceGiveNumSource() {
		m[s] = e.PieceGiveNumString(s)
	}
	return m
}

func (e DrawPrizeEnums) PieceGiveNumSource() []int {
	return []int{
		PieceGiveNumGetTypeBasicCfg,
		PieceGiveNumGetTypeDrawPrize,
		PieceGiveNumGetTypeGiveOther,
		PieceGiveNumGetTypeAdminOperate,
	}
}

func (e DrawPrizeEnums) ClothesChangeLogSourceNameMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ClothesChangeLogSource() {
		m[s] = e.ClothesChangeLogString(s)
	}
	return m
}

func (e DrawPrizeEnums) ClothesChangeLogSource() []int {
	return []int{
		DanceComposeClothesChangeLogSourceDirectDrawPrize,
		DanceComposeClothesChangeLogSourcePieceExchange,
		DanceComposeClothesChangeLogSourceMarrySuccess,
		DanceComposeClothesChangeLogSourceAdminAdd,
		DanceComposeClothesChangeLogSourceAdminCut,
		DanceComposeClothesChangeLogSourceHourRank,
		DanceComposeClothesChangeLogSourceDayRank,
		DanceComposeClothesChangeLogSourceWeekRank,
		DanceComposeClothesChangeLogSourceTripActivity,
		DanceComposeClothesChangeLogSourceScoreActivity,
		DanceComposeClothesChangeLogSourcePropResolve,
		DanceComposeClothesChangeLogSourceBuyShopMallGoodAdd,
		DanceComposeClothesChangeLogSourceOpenTreasureBoxAdd,
		DanceComposeClothesChangeLogSourceEndMiningAdd,
		DanceComposeClothesChangeLogSourceBetaPetSettlementSend,
		DanceComposeClothesChangeLogSourcePropValidityPeriodGive,
		DanceComposeClothesChangeLogSourcePetPowerRankingAdd,
		DanceComposeClothesChangeLogSourceSwipeGiftsGivePropsActivity,
		DanceComposeClothesChangeLogSourceMysticalShopRoomBuy,
		DanceComposeClothesChangeLogSourceAnniversaryActivityFortuneCardPrize,
		DanceComposeClothesChangeLogSourceAnniversaryActivityFortuneCardCompound,
		DanceComposeClothesChangeLogSourceOnHoldEndReward,
		DanceComposeClothesChangeLogSourcePetBossPieceExchange,
		DanceComposeClothesChangeLogSourcePetBossAtkRankReward,
		DanceComposeClothesChangeLogSourcePetBossAtkDmgReward,
		DanceComposeClothesChangeLogSourceDrawPrizeDayTaskReward,
		DanceComposeClothesChangeLogSourceMiniGameClothesGetOnce,
		DanceComposeClothesChangeLogPropValidityPeriodBatchGive,
		DanceComposeClothesChangeLogSourceMiniGamePropResolve,
		DanceComposeClothesChangeLogSourceMiniGameBuyShopMallGoodAdd,
		DanceComposeClothesChangeLogSourceMiniGameOpenTreasureBoxAdd,
		DanceComposeClothesChangeLogSourceDirectNewDrawPrize,
		//DanceComposeClothesChangeLogSourcePrizeDrawCPGift,
		DanceComposeClothesChangeLogSourceMiniGamePieceExchange,
		DanceComposeClothesChangeLogSourceConfessionWall,
		DanceComposeClothesChangeLogSourceAllGiftWeekRank,
		DanceComposeClothesChangeLogSourceMinGameTurntableDrawPrize,
		DanceComposeClothesChangeLogSourceCumulativeSales,
		DanceComposeClothesChangeLogSourceRingMarriageEngagementModelFortuneAccomplish,
		DanceComposeClothesChangeLogSourceHourTopRank,
		DanceComposeClothesChangeLogSourceRingMarriageProposalModelStart,
		DanceComposeClothesChangeLogSourceRingMarriageProposalModelFortuneAccomplish,
		DanceComposeClothesChangeLogSourceRingMarriageEngagementModelStart,
		DanceComposeClothesChangeLogSourceRingMarriedModelStart,
		DanceComposeClothesChangeLogSourceRingMarriedModelFortuneAccomplish,
		DanceComposeClothesChangeLogSourceRingProposalHalfModelStart,
		DanceComposeClothesChangeLogSourceRingProposalHalfModelFortuneAccomplish,
		DanceComposeClothesChangeLogSourceDoubleHourTopRank,
		DanceComposeClothesChangeLogSourceMinGameDrawPrizeDayTaskReward,
		DanceComposeClothesChangeLogSourceRoseRank,
	}
}

// 碎片可赠送次数枚举
func (e DrawPrizeEnums) PieceGiveNumString(tag int) string {
	switch tag {
	case PieceGiveNumGetTypeBasicCfg:
		return "使用保底配置"
	case PieceGiveNumGetTypeDrawPrize:
		return "抽满次数获取"
	case PieceGiveNumGetTypeGiveOther:
		return "赠送碎片减少"
	case PieceGiveNumGetTypeAdminOperate:
		return "后台补发"
	default:
		return "未知"
	}
}

// 一级服饰枚举
func (e DrawPrizeEnums) ClothesChangeLogString(tag int) string {
	switch tag {
	case DanceComposeClothesChangeLogSourceDirectDrawPrize:
		return "抽奖直接获得"
	case DanceComposeClothesChangeLogSourcePieceExchange:
		return "碎片兑换获得"
	case DanceComposeClothesChangeLogSourceMarrySuccess:
		return "结婚"
	case DanceComposeClothesChangeLogSourceAdminAdd:
		return "后台补发增加"
	case DanceComposeClothesChangeLogSourceAdminCut:
		return "后台补发减少"
	case DanceComposeClothesChangeLogSourceHourRank:
		return "小时榜发放"
	case DanceComposeClothesChangeLogSourceDayRank:
		return "日榜发放"
	case DanceComposeClothesChangeLogSourceWeekRank:
		return "周榜发放"
	case DanceComposeClothesChangeLogSourceTripActivity:
		return "旅途活动"
	case DanceComposeClothesChangeLogSourceScoreActivity:
		return "星光值活动"
	case DanceComposeClothesChangeLogSourcePropResolve:
		return "道具分解"
	case DanceComposeClothesChangeLogSourceBuyShopMallGoodAdd:
		return "购买商品增加"
	case DanceComposeClothesChangeLogSourceOpenTreasureBoxAdd:
		return "开宝箱增加"
	case DanceComposeClothesChangeLogSourceEndMiningAdd:
		return "结束挖矿发放奖励"
	case DanceComposeClothesChangeLogSourceBetaPetSettlementSend:
		return "内测宠物结算发放"
	case DanceComposeClothesChangeLogSourcePropValidityPeriodGive:
		return "道具时长赠送"
	case DanceComposeClothesChangeLogSourcePetPowerRankingAdd:
		return "战力结算发放"
	case DanceComposeClothesChangeLogSourceSwipeGiftsGivePropsActivity:
		return "刷礼物送道具活动"
	case DanceComposeClothesChangeLogSourceMysticalShopRoomBuy:
		return "神秘商店直播间购买"
	case DanceComposeClothesChangeLogSourceAnniversaryActivityFortuneCardPrize:
		return "周年庆活动集福卡奖励"
	case DanceComposeClothesChangeLogSourceAnniversaryActivityFortuneCardCompound:
		return "周年庆活动合成福卡"
	case DanceComposeClothesChangeLogSourceOnHoldEndReward:
		return "队伍挂机结束发放奖励"
	case DanceComposeClothesChangeLogSourcePetBossPieceExchange:
		return "宠物boss商店碎片兑换获得"
	case DanceComposeClothesChangeLogSourcePetBossAtkRankReward:
		return "打boss伤害排名发放奖励"
	case DanceComposeClothesChangeLogSourcePetBossAtkDmgReward:
		return "打boss伤害档位发放奖励"
	case DanceComposeClothesChangeLogSourceDrawPrizeDayTaskReward:
		return "抽奖每日任务送奖励"
	case DanceComposeClothesChangeLogSourceMiniGameClothesGetOnce:
		return "小游戏领取一次性衣服"
	case DanceComposeClothesChangeLogPropValidityPeriodBatchGive:
		return "道具时长批量赠送"
	case DanceComposeClothesChangeLogSourceMiniGamePropResolve:
		return "小游戏道具分解"
	case DanceComposeClothesChangeLogSourceMiniGameBuyShopMallGoodAdd:
		return "小游戏购买商品增加"
	case DanceComposeClothesChangeLogSourceMiniGameOpenTreasureBoxAdd:
		return "小游戏开宝箱增加"
	case DanceComposeClothesChangeLogSourceDirectNewDrawPrize:
		return "新抽奖活动获得"
	//case DanceComposeClothesChangeLogSourcePrizeDrawCPGift:
	//	return "新抽奖活动Cp赠送获得"
	case DanceComposeClothesChangeLogSourceMiniGamePieceExchange:
		return "小游戏碎片兑换道具获得"
	case DanceComposeClothesChangeLogSourceConfessionWall:
		return "告白墙周榜发放"
	case DanceComposeClothesChangeLogSourceAllGiftWeekRank:
		return "全服礼物周榜发放"
	case DanceComposeClothesChangeLogSourceMinGameTurntableDrawPrize:
		return "小游戏转盘抽奖"
	case DanceComposeClothesChangeLogSourceCumulativeSales:
		return "累销活动发放"
	case DanceComposeClothesChangeLogSourceRingMarriageEngagementModelFortuneAccomplish:
		return "戒指订婚模式福气值完成"
	case DanceComposeClothesChangeLogSourceHourTopRank:
		return "小时榜活动发放"
	case DanceComposeClothesChangeLogSourceRingMarriageProposalModelStart:
		return "戒指求婚模式开启"
	case DanceComposeClothesChangeLogSourceRingMarriageProposalModelFortuneAccomplish:
		return "戒指求婚模式福气值完成"
	case DanceComposeClothesChangeLogSourceRingMarriageEngagementModelStart:
		return "戒指订婚模式开启"
	case DanceComposeClothesChangeLogSourceRingMarriedModelStart:
		return "戒指结婚模式开启"
	case DanceComposeClothesChangeLogSourceRingMarriedModelFortuneAccomplish:
		return "戒指结婚模式福气值完成"
	case DanceComposeClothesChangeLogSourceRingProposalHalfModelStart:
		return "戒指求婚半价模式开启"
	case DanceComposeClothesChangeLogSourceRingProposalHalfModelFortuneAccomplish:
		return "戒指求婚半价模式福气值完成"
	case DanceComposeClothesChangeLogSourceDoubleHourTopRank:
		return "双人小时榜活动发放"
	case DanceComposeClothesChangeLogSourceMinGameDrawPrizeDayTaskReward:
		return "抽奖每日任务送奖励(小背包领取)"
	case DanceComposeClothesChangeLogSourceRoseRank:
		return "魅力值排行榜奖励"
	default:
		return "未知"
	}
}

// 挖矿奖励发放枚举
func (e DrawPrizeEnums) MiningSendRewardsLogSourceNameMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.MiningSendRewardsLogSource() {
		m[s] = e.MiningSendRewardsLogString(s)
	}
	return m
}

func (e DrawPrizeEnums) MiningSendRewardsLogSource() []int {
	return []int{
		MiningSendRewardsScript,
		MiningSendRewardsExitProactively,
	}
}

func (e DrawPrizeEnums) MiningSendRewardsLogString(tag int) string {
	switch tag {
	case MiningSendRewardsScript:
		return "脚本"
	case MiningSendRewardsExitProactively:
		return "离开城池"
	default:
		return "未知"
	}
}

// 抽奖信息队列枚举
func (e DrawPrizeEnums) DrawPrizeListLogSourceNameMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.DrawPrizeListLogSource() {
		m[s] = e.DrawPrizeListLogString(s)
	}
	return m
}

func (e DrawPrizeEnums) DrawPrizeListLogSource() []int {
	return []int{
		DanceActivitiesDrawPrizeListLogSourceRoomGiftPush,
		DanceActivitiesDrawPrizeListLogSourceDistributeNumberPush,
		DanceActivitiesDrawPrizeListLogSourceRoomPull,
	}
}

func (e DrawPrizeEnums) DrawPrizeListLogString(tag int) string {
	switch tag {
	case DanceActivitiesDrawPrizeListLogSourceRoomGiftPush:
		return "直播间刷礼物推送"
	case DanceActivitiesDrawPrizeListLogSourceDistributeNumberPush:
		return "补发抽奖次数推送"
	case DanceActivitiesDrawPrizeListLogSourceRoomPull:
		return "直播间拉取"
	default:
		return "未知"
	}
}
